Modern microcontrollers require data memories having a capacity of several hundred kilobytes, for example for static data memory (RAM, or Random Access Memory), or several megabytes, for example for the permanent storage of programs in so-called flash memories. Corresponding to the large memory volumes, or the technical realization thereof, data errors are comparatively frequent or at least probable. There are two fundamental types of error occurrences: the first are permanent errors, in the case of which repeated write and read cycles do not yield improvement. Secondly, in RAM memories individual data errors that disappear after a write-read cycle may occur, caused for example by alpha radiation.
Therefore, in order to improve data security error-securing methods (ECC, or Error Correction Code) are often used. For example, one-bit errors can always be corrected, two-bit errors can always be detected, and multi-bit errors can usually, but not always, be detected. However, the ECC method evaluates many data words having multiple errors as, in some cases, a data word differing from the original content and having a bit error, and correspondingly corrects these words wrongly.
Application of a sample ECC method to randomly produced data words has shown that this ECC method for example evaluates 28% of a sequence of data words as valid data words having an individual error, and evaluates the remaining 72% of the data words as invalid, relative to a respective formation rule of the ECC method. In security-critical applications, however, the requirements of international standards are very high. For example, the norm ISO 26262, ASIL-D requires that more than 99% of such randomly produced data words must be recognized as invalid.
Therefore, conventional expanded measures provide the increasing of a number of check bits added by the data words (so-called redundant bits) in order to improve the correction or detection of data errors even in the case of multi-bit errors. This requires an additional outlay of memory elements of the data memory, and correspondingly makes this memory more expensive.
In addition, the ECC method can be carried out in two steps, by applying, in succession, a so-called inner coding (ECC) and an outer coding (EDC, CRC) to the data words. However, this method is also connected with a high outlay and is expensive.